草庐IT

MySQL LIKE 子句

全部标签

mysql - "where in"子句的实际限制

我有一个相当简单的表,其中包含大约一百万行。id|my_col|other1|other2|...此表中大约有15k个不同的my_col值,我在my_col上有一个索引。我有一组7kmy_col值需要从该表中删除。在SQL中做什么更有效(我目前正在使用MySQL,但将来可能会移植到MSSQL)。是a)在我的java应用程序代码中,遍历所有my_col值并在每个值上调用sqldelete。for(Stringmy_colValue:listMyCol){[deletefrommy_tablewheremy_col=my_colValue]}或b)使用“wherein”子句构建包含所有这些

mysql - UPDATE 查询更改了没有 WHERE 子句但有 AND 子句的行 - 为什么?

我运行了以下查询,它应该有一个where子句但我忘了添加它:UPDATEtblFormElementInstancesasfeiJOINtblFormElementsasfeusing(intFormElementId)SETfei.intStep=1ANDfei.intDivisionId=1ORfei.intDivisionIdISNULL);MySQL返回以下消息:--查询成功,影响42行(0.06秒)--匹配行数:94更改数:42警告数:0我原以为它会抛出一个语法错误,但它并没有。此外,该表中有96行,具有不同的intDivisionIds(即不仅仅是1或NULL),这表明一些

mysql - GROUP BY 子句的别名?

在MySQL中,可以在SELECT子句中创建的GROUPBY子句中使用别名(参见MySQLReference)。我只是想知道为什么不能在GROUPBY中创建别名并在SELECT中使用它,它遵循SELECT语句的执行顺序。换句话说,为什么下面是不合语法的?SELECTregion,SUM(population)FROMpopulation_us_statesGROUPBYCASEstate_nameWHEN'CT'THEN'NewEngland'WHEN'RI'THEN'NewEngland'WHEN'MA'THEN'NewEngland'WHEN'ME'THEN'NewEngland'

MySQL - WHERE 子句中的数字和文本

当我在MySQL中运行两条语句时,我感到很惊讶SELECT*FROMjobsWHEREsalary_max=1000和SELECT*FROMjobsWHEREsalary_max='1000'我只是想知道为什么MySQL可以处理文本和数字相同,并返回相同的结果。你能为我解释一下吗? 最佳答案 MySQL自动转换表达式中不兼容的类型,使它们兼容。在MySQLdocumentation中进行了讨论. 关于MySQL-WHERE子句中的数字和文本,我们在StackOverflow上找到一个类似

mysql - 基于列值的条件 sql WHERE 子句

我有一个存储用户的表。每个用户都有一个ID、一个Name和一个AccessLevel。三种可能的访问级别是Administrator、Manager和SimpleUser。我想要的是根据AccessLevel值有条件地从此表中进行选择。我演示了以下逻辑:如果用户是管理员,则选择所有用户(管理员、经理、简单用户)否则,如果用户是Manager,则选择所有Manager和所有SimpleUsers否则,如果用户是SimpleUser,则只选择他自己这可能吗? 最佳答案 ProvidingAccessLevel是一个整数,随着实际访问级别

IN 子句的 MySQL 变量

我需要在我的WHEREIN(@variable)子句中使用一个变量,因为我有多个动态值被传递到我的存储过程变量中。我之前已经看到通过创建一个函数来拆分参数来使用MSSQL完成此操作,但我不太确定这是否可以在MySQL上实现。因为我真的没有任何其他选择,无论如何我可以让它工作吗?谢谢 最佳答案 也许是FIND_IN_SET可以帮助你。 关于IN子句的MySQL变量,我们在StackOverflow上找到一个类似的问题: https://stackoverflow

MySQL 多级父子 SP 和 IN 子句

我正在处理包含父子关系的表referrals我需要得到parent->child->他们的child->....对于上面的表格数据,我想要的结果是我看过SOF的一些代码,但不明白它们是如何工作的,并在我的脑海中尝试了一个非常简单的逻辑,但不幸的是,由于一个奇怪的原因,它没有工作我已经为它编写了存储过程,但是我遇到了INCLAUSE的问题DELIMITER$$DROPPROCEDUREIFEXISTS`GetHierarchy3`$$CREATEDEFINER=`root`@`localhost`PROCEDURE`GetHierarchy3`()BEGINDECLAREidssVARC

mysql - 使用 between 子句的 Codeigniter 数据库错误

我从codeigniter及其生成此sql查询时收到数据库语法错误。SELECT`code`,`latitude`,`longitude`FROM(`postcodes`)WHERE`latitude``BETWEEN55`.`8616AND56`.`1508`AND`longitude``BETWEEN'-3`.`9507'AND'-3`.`6131'`AND`code`LIKE'FK%'我想我可以看到在不应该在经度和lqatitudes中添加''的问题。生成此查询的代码是:functionget_zips_in_range($zip,$range,$sort=1,$include_

mysql - 如何在mysql中使用in子句替换函数

我想要sql查询,它以concat字符串的形式给出输出SQL查询SELECTGROUP_CONCAT(nm)FROMxyzWHERExyz.idIN(REPLACE(abc,"|",','))其中abc是像1|2|3|4这样的字符串,它是xyz表的ID上面的查询只给出了abc中第一个id的nm。我认为它创建的查询类似于SELECTGROUP_CONCAT(nm)FROMxyzWHERExyz.idIN("1,2,3,4")所以(")可能会产生任何人都可以提供帮助的问题。 最佳答案 您可以使用LIKE,(但它不会使用索引)SELECT

mysql - SQL 连接子句返回多次出现的行而不分组

我想从JOIN查询中提取多次出现的记录,但不对它们进行分组。示例表:tbl_namesidName1Mark2John3Jane4Paultbl_locationsidLocation1Berlin2Frankfurt2Stockholm3Helsinki3Madrid3London4ParisID是一个外键。现在,查询的结果将是:idNameLocation2JohnFrankfurt2JohnStockholm3JaneHelsinki3JaneMadrid3JaneLondon即第一个表中的记录在JOIN子句结果中出现不止一次的所有JOIN记录。我当然可以把它分组:SELECTt